home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / StandardFile.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  8.9 KB  |  274 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        StandardFile.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT StandardFile;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __STANDARDFILE__}
  27. {$SETC __STANDARDFILE__ := 1}
  28.  
  29. {$I+}
  30. {$SETC StandardFileIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$IFC UNDEFINED __DIALOGS__}
  40. {$I Dialogs.p}
  41. {$ENDC}
  42. {    Errors.p                                                    }
  43. {    Memory.p                                                    }
  44. {        MixedMode.p                                                }
  45. {    Windows.p                                                    }
  46. {        Quickdraw.p                                                }
  47. {            QuickdrawText.p                                        }
  48. {        Events.p                                                }
  49. {            OSUtils.p                                            }
  50. {        Controls.p                                                }
  51. {            Menus.p                                                }
  52. {    TextEdit.p                                                    }
  53.  
  54. {$IFC UNDEFINED __FILES__}
  55. {$I Files.p}
  56. {$ENDC}
  57.  
  58. {$PUSH}
  59. {$ALIGN MAC68K}
  60. {$LibExport+}
  61.  
  62. CONST
  63. { resource IDs and item offsets of pre-7.0 dialogs }
  64.     putDlgID                    = -3999;
  65.     putSave                        = 1;
  66.     putCancel                    = 2;
  67.     putEject                    = 5;
  68.     putDrive                    = 6;
  69.     putName                        = 7;
  70.     getDlgID                    = -4000;
  71.     getOpen                        = 1;
  72.     getCancel                    = 3;
  73.     getEject                    = 5;
  74.     getDrive                    = 6;
  75.     getNmList                    = 7;
  76.     getScroll                    = 8;
  77. { resource IDs and item offsets of 7.0 dialogs }
  78.     sfPutDialogID                = -6043;
  79.     sfGetDialogID                = -6042;
  80.     sfItemOpenButton            = 1;
  81.     sfItemCancelButton            = 2;
  82.     sfItemBalloonHelp            = 3;
  83.     sfItemVolumeUser            = 4;
  84.     sfItemEjectButton            = 5;
  85.  
  86.     sfItemDesktopButton            = 6;
  87.     sfItemFileListUser            = 7;
  88.     sfItemPopUpMenuUser            = 8;
  89.     sfItemDividerLinePict        = 9;
  90.     sfItemFileNameTextEdit        = 10;
  91.     sfItemPromptStaticText        = 11;
  92.     sfItemNewFolderUser            = 12;
  93. { pseudo-item hits for use in DlgHook }
  94.     sfHookFirstCall                = -1;
  95.     sfHookCharOffset            = $1000;
  96.     sfHookNullEvent                = 100;
  97.     sfHookRebuildList            = 101;
  98.     sfHookFolderPopUp            = 102;
  99.     sfHookOpenFolder            = 103;
  100. { the following are only in system 7.0+ }
  101.     sfHookOpenAlias                = 104;
  102.     sfHookGoToDesktop            = 105;
  103.     sfHookGoToAliasTarget        = 106;
  104.     sfHookGoToParent            = 107;
  105.     sfHookGoToNextDrive            = 108;
  106.     sfHookGoToPrevDrive            = 109;
  107.     sfHookChangeSelection        = 110;
  108.  
  109.     sfHookSetActiveOffset        = 200;
  110.     sfHookLastCall                = -2;
  111.  
  112. { the refcon field of the dialog record during a
  113.  modalfilter or dialoghook contains one of the following }
  114.     sfMainDialogRefCon            = 'stdf';
  115.     sfNewFolderDialogRefCon        = 'nfdr';
  116.     sfReplaceDialogRefCon        = 'rplc';
  117.     sfStatWarnDialogRefCon        = 'stat';
  118.     sfLockWarnDialogRefCon        = 'lock';
  119.     sfErrorDialogRefCon            = 'err ';
  120.  
  121.  
  122. TYPE
  123.     SFReply = RECORD
  124.         good:                    BOOLEAN;
  125.         copy:                    BOOLEAN;
  126.         fType:                    OSType;
  127.         vRefNum:                INTEGER;
  128.         version:                INTEGER;
  129.         fName:                    Str63;
  130.     END;
  131.     StandardFileReply = RECORD
  132.         sfGood:                    BOOLEAN;
  133.         sfReplacing:            BOOLEAN;
  134.         sfType:                    OSType;
  135.         sfFile:                    FSSpec;
  136.         sfScript:                ScriptCode;
  137.         sfFlags:                INTEGER;
  138.         sfIsFolder:                BOOLEAN;
  139.         sfIsVolume:                BOOLEAN;
  140.         sfReserved1:            LONGINT;
  141.         sfReserved2:            INTEGER;
  142.     END;
  143. { for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers }
  144.     ActivationOrderListPtr = ^INTEGER;
  145.  
  146. { the following also include an extra parameter of "your data pointer" }
  147.     SFTypeList = ARRAY [0..3] OF OSType;
  148.  
  149.     DlgHookProcPtr = ProcPtr;  { FUNCTION DlgHook(item: INTEGER; theDialog: DialogPtr): INTEGER; }
  150.     FileFilterProcPtr = ProcPtr;  { FUNCTION FileFilter(pb: CInfoPBPtr): BOOLEAN; }
  151.     DlgHookYDProcPtr = ProcPtr;  { FUNCTION DlgHookYD(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr): INTEGER; }
  152.     ModalFilterYDProcPtr = ProcPtr;  { FUNCTION ModalFilterYD(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr): BOOLEAN; }
  153.     FileFilterYDProcPtr = ProcPtr;  { FUNCTION FileFilterYD(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr): BOOLEAN; }
  154.     ActivateYDProcPtr = ProcPtr;  { PROCEDURE ActivateYD(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr); }
  155.     DlgHookUPP = UniversalProcPtr;
  156.     FileFilterUPP = UniversalProcPtr;
  157.     DlgHookYDUPP = UniversalProcPtr;
  158.     ModalFilterYDUPP = UniversalProcPtr;
  159.     FileFilterYDUPP = UniversalProcPtr;
  160.     ActivateYDUPP = UniversalProcPtr;
  161.  
  162. CONST
  163.     uppDlgHookProcInfo = $000003A0; { FUNCTION (2 byte param, 4 byte param): 2 byte result; }
  164.     uppFileFilterProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  165.     uppDlgHookYDProcInfo = $00000FA0; { FUNCTION (2 byte param, 4 byte param, 4 byte param): 2 byte result; }
  166.     uppModalFilterYDProcInfo = $00003FD0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 1 byte result; }
  167.     uppFileFilterYDProcInfo = $000003D0; { FUNCTION (4 byte param, 4 byte param): 1 byte result; }
  168.     uppActivateYDProcInfo = $000036C0; { PROCEDURE (4 byte param, 2 byte param, 1 byte param, 4 byte param); }
  169.  
  170. FUNCTION NewDlgHookProc(userRoutine: DlgHookProcPtr): DlgHookUPP;
  171.     {$IFC NOT GENERATINGCFM }
  172.     INLINE $2E9F;
  173.     {$ENDC}
  174.  
  175. FUNCTION NewFileFilterProc(userRoutine: FileFilterProcPtr): FileFilterUPP;
  176.     {$IFC NOT GENERATINGCFM }
  177.     INLINE $2E9F;
  178.     {$ENDC}
  179.  
  180. FUNCTION NewDlgHookYDProc(userRoutine: DlgHookYDProcPtr): DlgHookYDUPP;
  181.     {$IFC NOT GENERATINGCFM }
  182.     INLINE $2E9F;
  183.     {$ENDC}
  184.  
  185. FUNCTION NewModalFilterYDProc(userRoutine: ModalFilterYDProcPtr): ModalFilterYDUPP;
  186.     {$IFC NOT GENERATINGCFM }
  187.     INLINE $2E9F;
  188.     {$ENDC}
  189.  
  190. FUNCTION NewFileFilterYDProc(userRoutine: FileFilterYDProcPtr): FileFilterYDUPP;
  191.     {$IFC NOT GENERATINGCFM }
  192.     INLINE $2E9F;
  193.     {$ENDC}
  194.  
  195. FUNCTION NewActivateYDProc(userRoutine: ActivateYDProcPtr): ActivateYDUPP;
  196.     {$IFC NOT GENERATINGCFM }
  197.     INLINE $2E9F;
  198.     {$ENDC}
  199.  
  200. FUNCTION CallDlgHookProc(item: INTEGER; theDialog: DialogPtr; userRoutine: DlgHookUPP): INTEGER;
  201.     {$IFC NOT GENERATINGCFM}
  202.     INLINE $205F, $4E90;
  203.     {$ENDC}
  204.  
  205. FUNCTION CallFileFilterProc(pb: CInfoPBPtr; userRoutine: FileFilterUPP): BOOLEAN;
  206.     {$IFC NOT GENERATINGCFM}
  207.     INLINE $205F, $4E90;
  208.     {$ENDC}
  209.  
  210. FUNCTION CallDlgHookYDProc(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr; userRoutine: DlgHookYDUPP): INTEGER;
  211.     {$IFC NOT GENERATINGCFM}
  212.     INLINE $205F, $4E90;
  213.     {$ENDC}
  214.  
  215. FUNCTION CallModalFilterYDProc(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr; userRoutine: ModalFilterYDUPP): BOOLEAN;
  216.     {$IFC NOT GENERATINGCFM}
  217.     INLINE $205F, $4E90;
  218.     {$ENDC}
  219.  
  220. FUNCTION CallFileFilterYDProc(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr; userRoutine: FileFilterYDUPP): BOOLEAN;
  221.     {$IFC NOT GENERATINGCFM}
  222.     INLINE $205F, $4E90;
  223.     {$ENDC}
  224.  
  225. PROCEDURE CallActivateYDProc(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr; userRoutine: ActivateYDUPP);
  226.     {$IFC NOT GENERATINGCFM}
  227.     INLINE $205F, $4E90;
  228.     {$ENDC}
  229.  
  230. PROCEDURE SFPutFile(where: Point; prompt: ConstStr255Param; origName: ConstStr255Param; dlgHook: DlgHookUPP; VAR reply: SFReply);
  231.     {$IFC NOT GENERATINGCFM}
  232.     INLINE $3F3C, $0001, $A9EA;
  233.     {$ENDC}
  234. PROCEDURE SFGetFile(where: Point; prompt: ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; VAR typeList: SFTypeList; dlgHook: DlgHookUPP; VAR reply: SFReply);
  235.     {$IFC NOT GENERATINGCFM}
  236.     INLINE $3F3C, $0002, $A9EA;
  237.     {$ENDC}
  238. PROCEDURE SFPPutFile(where: Point; prompt: ConstStr255Param; origName: ConstStr255Param; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  239.     {$IFC NOT GENERATINGCFM}
  240.     INLINE $3F3C, $0003, $A9EA;
  241.     {$ENDC}
  242. PROCEDURE SFPGetFile(where: Point; prompt: ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; VAR typeList: SFTypeList; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  243.     {$IFC NOT GENERATINGCFM}
  244.     INLINE $3F3C, $0004, $A9EA;
  245.     {$ENDC}
  246. PROCEDURE StandardPutFile(prompt: ConstStr255Param; defaultName: ConstStr255Param; VAR reply: StandardFileReply);
  247.     {$IFC NOT GENERATINGCFM}
  248.     INLINE $3F3C, $0005, $A9EA;
  249.     {$ENDC}
  250. PROCEDURE StandardGetFile(fileFilter: FileFilterUPP; numTypes: INTEGER; VAR typeList: SFTypeList; VAR reply: StandardFileReply);
  251.     {$IFC NOT GENERATINGCFM}
  252.     INLINE $3F3C, $0006, $A9EA;
  253.     {$ENDC}
  254. PROCEDURE CustomPutFile(prompt: ConstStr255Param; defaultName: ConstStr255Param; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  255.     {$IFC NOT GENERATINGCFM}
  256.     INLINE $3F3C, $0007, $A9EA;
  257.     {$ENDC}
  258. PROCEDURE CustomGetFile(fileFilter: FileFilterYDUPP; numTypes: INTEGER; VAR typeList: SFTypeList; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  259.     {$IFC NOT GENERATINGCFM}
  260.     INLINE $3F3C, $0008, $A9EA;
  261.     {$ENDC}
  262. FUNCTION StandardOpenDialog(VAR reply: StandardFileReply): OSErr;
  263.  
  264. {$ALIGN RESET}
  265. {$POP}
  266.  
  267. {$SETC UsingIncludes := StandardFileIncludes}
  268.  
  269. {$ENDC} {__STANDARDFILE__}
  270.  
  271. {$IFC NOT UsingIncludes}
  272.  END.
  273. {$ENDC}
  274.